Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add utilities for computing aggregate reports #12

Open
wants to merge 20 commits into
base: v0.1.1
Choose a base branch
from

Conversation

JacobVanGeffen
Copy link
Collaborator

@JacobVanGeffen JacobVanGeffen commented Oct 7, 2024

This PR adds the following features:

  • Ability to generate aggregate reports for a set of flop solves
    • Generates one report for given set of action lines
    • Each row in the report includes ip/oop EV/equity & likelihood of all available actions for each flop, computed using weighted averages across all possible hands
    • Can optionally specify weights for flops and generate weighted average of all statistics across all flops
  • Ability to generate aggregate turn reports
    • Given a set of flop solves and a single flop action line, generates report with 49N rows, where N = # of flops (all with same statistics as flop aggregate report)
  • Ability to generate aggregate river reports
    • Given a set of flop solves and a single line, generate a report with 49*48N rows, where N = # of flops

Tasks

  • Define aggregate report functionality within library (rather than one-off example).
  • Support overwriting reports
  • Take lines for reports as input, rather than generating reports for all lines
  • Support aggregate reports over turn and river nodes.
  • Add Global Frequency to rows
  • Define test suite for aggregate report
  • Thorough doc-strings
  • Allow for weighted updates

@bkushigian bkushigian changed the base branch from main to v0.1.1 October 7, 2024 07:28
@bkushigian
Copy link
Owner

@JacobVanGeffen can you pull v0.1.1 into your branch when you ahve time? this fixes CI breakages

@JacobVanGeffen
Copy link
Collaborator Author

@JacobVanGeffen can you pull v0.1.1 into your branch when you ahve time? this fixes CI breakages

It's up to date, CI is breaking b/c there are warnings from unused things in the example. Will remove/use those things in the next commit.

examples/report.rs Outdated Show resolved Hide resolved
examples/report.rs Outdated Show resolved Hide resolved
examples/report.rs Outdated Show resolved Hide resolved
examples/report.rs Show resolved Hide resolved
src/game/utils/batch/report.rs Outdated Show resolved Hide resolved
src/game/utils/batch/report.rs Outdated Show resolved Hide resolved
src/game/utils/flop_helper.rs Outdated Show resolved Hide resolved
src/game/utils/flop_helper.rs Outdated Show resolved Hide resolved
src/game/utils/flop_helper.rs Outdated Show resolved Hide resolved
src/game/utils/batch/mod.rs Outdated Show resolved Hide resolved
@JacobVanGeffen JacobVanGeffen force-pushed the jacob/aggregate_reports branch from e603694 to 0218ceb Compare December 17, 2024 21:02
src/utility.rs Outdated Show resolved Hide resolved
@JacobVanGeffen JacobVanGeffen force-pushed the jacob/aggregate_reports branch from 7006302 to bb80bc7 Compare December 17, 2024 22:26
Copy link
Owner

@bkushigian bkushigian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still aggregating over all lines? If so, this isn't super usable because there are a LOT of lines. Users will typically e interested in 4 or 5 spots to aggregate...maybe 10 at the most. This will give them 100s of lines, and this will take way way way too long to run.

src/game/aggregation.rs Show resolved Hide resolved
src/game/aggregation.rs Show resolved Hide resolved
src/utility.rs Outdated Show resolved Hide resolved
src/utility.rs Outdated Show resolved Hide resolved
/// that was solved using the same `config` that was passed into `init_root`.
///
/// [`update_report_for_game`]: #method.update_report_for_game
pub fn init_root(lines: Vec<Vec<Action>>, config: TreeConfig) -> Result<Self, String> {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bkushigian This is the initialization function for AggActtionTree. It takes the set of lines that the aggregation report should run over, and constructs the tree (w/o any data) for only those lines. Then, when update_report_for_game is called, only data relevant for those lines is stored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants